package br.com.wepa.webapps.orca.logica.modelo;

// Generated 12/01/2007 02:01:35 by Hibernate Tools 3.2.0.beta8

import java.util.HashSet;
import java.util.Set;

import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.Table;

/**
 * Especificacaoproduto generated by hbm2java
 */
@Entity
@Table(name = "especificacaoproduto", catalog = "Orca", uniqueConstraints = {})
public class Especificacaoproduto implements java.io.Serializable {

	// Fields    
	/**
	 * 
	 */
	private static final long serialVersionUID = -4668424216913543986L;

	private int idEspecProduto;

	private Subgrupo subgrupo;

	private String nome;

	private String descricao;

	private Set<Produto> produtos = new HashSet<Produto>(0);

	// Constructors

	/** default constructor */
	public Especificacaoproduto() {
	}

	/** minimal constructor */
	public Especificacaoproduto(int idEspecProduto, Subgrupo subgrupo,
			String nome) {
		this.idEspecProduto = idEspecProduto;
		this.subgrupo = subgrupo;
		this.nome = nome;
	}

	/** full constructor */
	public Especificacaoproduto(int idEspecProduto, Subgrupo subgrupo,
			String nome, String descricao, Set<Produto> produtos) {
		this.idEspecProduto = idEspecProduto;
		this.subgrupo = subgrupo;
		this.nome = nome;
		this.descricao = descricao;
		this.produtos = produtos;
	}

	// Property accessors
	@Id @GeneratedValue(strategy=GenerationType.AUTO)
	@Column(name = "idEspecProduto", unique = true, nullable = false, insertable = true, updatable = true)
	public int getIdEspecProduto() {
		return this.idEspecProduto;
	}

	public void setIdEspecProduto(int idEspecProduto) {
		this.idEspecProduto = idEspecProduto;
	}

	@ManyToOne(cascade = {}, fetch = FetchType.LAZY)
	@JoinColumn(name = "Grupo_idGrupo", unique = false, nullable = false, insertable = true, updatable = true)
	public Subgrupo getSubgrupo() {
		return this.subgrupo;
	}

	public void setSubgrupo(Subgrupo subgrupo) {
		this.subgrupo = subgrupo;
	}

	@Column(name = "nome", unique = false, nullable = false, insertable = true, updatable = true)
	public String getNome() {
		return this.nome;
	}

	public void setNome(String nome) {
		this.nome = nome;
	}

	@Column(name = "descricao", unique = false, nullable = true, insertable = true, updatable = true, length = 500)
	public String getDescricao() {
		return this.descricao;
	}

	public void setDescricao(String descricao) {
		this.descricao = descricao;
	}

	@OneToMany(cascade = { CascadeType.ALL }, fetch = FetchType.LAZY, mappedBy = "especificacaoproduto")
	public Set<Produto> getProdutos() {
		return this.produtos;
	}

	public void setProdutos(Set<Produto> produtos) {
		this.produtos = produtos;
	}

}
